<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->
  <!-- <meta http-equiv="X-UA-Compatible" content="ie=edge"> -->
  <title>监听事件参数问题</title>
  <script src="../js/vue.js"></script>
</head>

<body>
  <div id="app">
    <div style="margin-bottom: 5px;">
      <!-- 事件调用方法没有参数 -->
      <button @click="btn1Click()">按钮1</button>
    </div>

    <div style="margin-bottom: 5px;">
      <!-- 在事件定义时，写函数忽略了小括号，但是方法本身是需要一个参数的 -->
      <button @click="btn2Click(123)">按钮2</button>
      <!-- 打印：btn2Click --- undefined -->
      <button @click="btn2Click()">按钮2(不传参数)</button>
      <!-- 事件定义时，函数不带小括号，但方法本身需要一个参数，此时浏览器会默认将浏览器生产的event事件对象作为参数传入到方法中 -->
      <!-- 打印：btn2Click --- [object PointerEvent] -->
      <button @click="btn2Click">按钮2(不带括号)</button>
    </div>

    <!-- 方法定义时，需要event对象，且需要参数 -->
    <div style="margin-bottom: 5px;">
      <!-- 调用方法，手动获取浏览器参数的event对象：$event -->
      <button @click="btn3Click(abc, $event)">按钮3</button>
    </div>
    
  </div>

  <script>
    var vm = new Vue({
      el: '#app',
      data: {
        message: '你好啊',
        abc: 123
      },
      methods: {
        btn1Click() {
          console.log("btn1Click");
        },
        btn2Click(abc) {
          console.log("btn2Click --- ", abc);
        },
        btn3Click(abc, event) {
          console.log('++++', abc, event);
        }
      }
    });
  </script>
</body>

</html>